<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        // 强制类型转换
        // 1.转换为number
        // 方式一：Number(变量)
        // var a=Number("12");
        // var a=Number("abc");
        // var a=Number("123abc");
        // var a=Number("abc123");
        // var a=Number("");
        var a=Number(true);//boolean值在内存中就是以数字来存储，true为1，false为0
        console.log(a);
        console.log(typeof a);

        // 方式二：parseInt(变量),将内容转换成整数（直接去掉小数）,会从第一个字符开始解析，直到遇到非数字符号停止，并返回已解析的部分数值
        // var b=parseInt("1234");
        // var b=parseInt("123abc");
        // var b=parseInt("abc123");
        var b=parseInt("124.9");
        console.log(b);

        // 方式三：parseFloat()将内容转换成小数,会从第一个字符开始解析，直到遇到非数字符号停止，并返回已解析的部分数值
        // var c=parseFloat("123.56abc");
        // var c=parseFloat("789");
        // var c=parseFloat("abc123.45");
        var c=parseFloat("12.34acd");
        console.log(c);


        //2.转换为string
        // 方式一：使用String(变量)
        // var d=String(78);
        var d=String(true);
        console.log(d);
        //方式二：使用:变量.toString()
        var e=89;
        console.log(e.toString());

        //3.转换为boolean
        // 结论：null、0、NaN、undefined、""都会被转换成false，非空字符串、非0数字会被转换为true
        // 使用Boolean(变量)
        // var f=Boolean(0);
        // var f=Boolean("aaa");
        // var f=Boolean("");
        var f=Boolean(123);
        console.log(f);

        //自动类型转换(隐式转换)

        // 转换为数值
        var aa="2";
        aa=aa*1;//*-、%
        console.log(aa);//number
        var bb="3";
        bb=+bb;//在变量的前面加上+
        console.log(bb);//number

        //转换为字符串
        var cc=12;
        cc=""+cc;
        console.log(cc);//string
        console.log(typeof cc);

        //转换为boolean
        var dd=23;
        console.log(!!dd);

    </script>
</head>
<body>
    
</body>
</html>